草庐IT

C++ OpenGL gluLookAt 帮助

全部标签

c++ - 帮助编译器优化分支代码序列

我的C/C++代码序列包含很多分支,像这样:if(condition1)returntrue;if(condition2)returntrue;...returnfalse;(相当于返回条件1||条件2||...;)评估每个条件都需要多次内存访问(都是只读的),但编译器在评估前一个条件之前没有移动内存访问,从而错过了一个重要的优化机会。原因是当条件1为真时,条件2的内存访问可能会出现段错误。好吧,我知道他们没有,我希望编译器做一些明智的事情,并在适合性能的地方混合其中一些代码序列,例如利用指令级并行性。我也不想将条件更改为逻辑或(不是短路),因为其中一个分支可能会跳出来。关于如何实现这

c++ - 需要有关 BOOST_FOREACH/编译器错误的帮助

我知道应该最后归咎于boost或编译器,但我在这里看不到其他解释。我正在使用msvc2008SP1和boost1.43。在以下代码片段中,执行永远不会离开第三个BOOST_FOREACH循环typedefGraph::VertexIteratorIter;Graphg;g.createVertex(0x66);//worksfineIterit=g.getVertices().first,end=g.getVertices().second;for(;it!=end;++it);//finestd::pairp=g.getVertices();BOOST_FOREACH(unsigne

c++ - 需要基本帮助在 C++ 中解析字符串

C++不是我的首选语言。我有一个包含以下内容的文件:e225,37035,75我想将e、225、370、35和75彼此分隔成一个字符和整数,但我遇到了麻烦。我试着做我在网上和我的C++书中找到的所有东西,但仍然没有成功。请帮忙。我会在Java中更轻松地做到这一点。 最佳答案 C++StringToolkitLibrary(StrTk)对您的问题有以下解决方案:intmain(){std::stringdata("e225,37035,75");charc1;inti1,i2,i3,i4;strtk::parse(data,",",c

c++ - 将 'const' 添加到指针可以帮助优化吗?

我有一个指针int*p,在循环中做一些操作。我不修改内存,只是读取。如果我将const添加到指针(两种情况下,constint*p和int*constp),它可以帮助编译器优化代码?我知道const的其他优点,例如安全性或self文档,我询问了这个特殊情况。重新表述这个问题:const可以给编译器任何有用的(用于优化)信息吗? 最佳答案 虽然这显然是特定于实现的,但很难看出将指针从int*更改为intconst*可以提供任何附加信息,否则编译器不会知道。在这两种情况下,指向的值都可以在循环执行期间发生变化。因此它可能不会帮助编译器优

c++ - 帮助我理解 boost::bind 的用法

请查看JohannesSchaub发布的这个示例,以对vector对进行排序:HowdoIsortavectorofpairsbasedonthesecondelementofthepair?std::sort(a.begin(),a.end(),boost::bind(&std::pair::second,_1)::second,_2));我以为我理解boost::bind,但我对这个有问题。问题1:排序算法需要一个谓词函数作为第三个参数。我在这里看到的是一个bool表达式。我错过了什么?:boost::bind(&std::pair::second,_1)::second,_2)b

c++ - Boost Asio serial_port - 需要 io 帮助

所以我一直在尝试学习boost::asio的东西,以便使用RS232与串行设备进行通信。文档很少,示例也不存在。无法弄清楚如何与设备进行通信。该设备无法发送数据,所以我需要做的就是编写,但其他项目需要实际的来回通信,因此将不胜感激。到目前为止我的代码如下。#includeusingnamespace::boost::asio;intmain(){io_serviceio;serial_portport(io,"COM3");port.set_option(serial_port_base::baud_rate(19200));unsignedcharcommands[4]={1,128

c++ - `warning C4127`(条件表达式是常量)有帮助吗?

在回答this时发布后,我建议将do{...}while(0)用于多行宏。在MSVC上,我发现此代码抛出:warningC4127:conditionalexpressionisconstant为了使代码无警告,我需要选择以下丑陋的替代方案之一:选项1#ifdef_MSC_VER#pragmawarning(push)#pragmawarning(disable:4127)#endifcode_using_macro_that_generates_C4217;#ifdef_MSC_VER#pragmawarning(pop)#endif选项2将我的宏定义为:#defineMULTI_L

c++ - 在 getline() 方面需要帮助

这个问题在这里已经有了答案:Whydoesstd::getline()skipinputafteraformattedextraction?(5个回答)关闭3年前。如果在我的程序中我要求用户输入,我这样做是否有原因:intnumber;stringstr;intaccountNumber;cout>number;cout>accountNumber;为什么在输入第一个数字后,它会输出“输入姓名”,然后在我输入getline(cin,str)行的“str”之前立即输出“输入帐号”?谢谢! 最佳答案 getline(cin,str);读

c++ - 静态函数帮助 C++

我无法解决我遇到的这个问题。这是一个简单的例子:classx{public:voidfunction(void);private:staticvoidfunction2(void);};voidx::function(void){x::function2(void);}staticvoidfunction2(void){//something}我收到提示function2是私有(private)的错误。如果我将其公开(我真的不想这样做),我会收到有关对function2的undefinedreference的错误。我究竟做错了什么?谢谢! 最佳答案

HTML 到 Jade 帮助

我正在尝试创建一个带有2个输入字段和1个按钮的简单表单。这里是需要翻译成Jade的HTML:Username:Password:请在我把这台电脑扔出窗外并在Jade模板语言开发人员之后派出杀戮小队之前帮助我。 最佳答案 form(name="input",action="html_form_action.asp",method="get")|Username:input(type="text",name="user")|Password:input(type="text",name="pswd")input(type="submit